package com.itheima.controller.backend.security;

import com.itheima.common.entity.PageResult;
import com.itheima.common.entity.Result;
import com.itheima.pojo.CheckItem;
import com.itheima.pojo.dto.CheckItemDTO;
import com.itheima.pojo.dto.CheckItemQueryDTO;
import com.itheima.pojo.vo.CheckItemVO;
import com.itheima.service.CheckItemService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 检查项管理
 */
@Slf4j
@RestController
@RequestMapping("/checkitem")
@Api(tags = "检查项管理")
public class CheckItemController {

	@Autowired
	private CheckItemService checkItemService;

	@PostMapping("/add")
	@ApiOperation("新增检查项")
	public Result add(@RequestBody CheckItemDTO checkItemDTO) {
		log.info("新增检查项");
		checkItemService.add(checkItemDTO);
		return new Result(true, "新增检查项成功");

	}

	@GetMapping("/delete")
	@ApiOperation("根据ID删除检查项")
	public Result delete(Integer id) {
		log.info("根据ID删除检查项");
		checkItemService.delete(id);
		return new Result(true, "删除成功");
	}

	@PostMapping("/edit")
	@ApiOperation("编辑检查项")
	public Result edit(@RequestBody CheckItemDTO checkItemDTO) {
		log.info("编辑检查项");
		checkItemService.edit(checkItemDTO);
		return new Result(true, "编辑成功");
	}

	@PostMapping("/findPage")
	@ApiOperation("条件分页查询(项目编码或项目名称）")
	public PageResult findPage(@RequestBody CheckItemQueryDTO checkItemQueryDTO) {
		log.info("条件分页查询(项目编码或项目名称）");
		PageResult pageResult = checkItemService.findPage(checkItemQueryDTO);
		return pageResult;
	}

	@GetMapping("/findById")
	@ApiOperation("根据ID查询检查项")
	public Result findById(Integer id) {
		log.info("根据ID查询检查项");
		CheckItemVO checkItem = checkItemService.findById(id);
		return new Result(true, "查询成功", checkItem);
	}

	@PostMapping("/findAll")
	@ApiOperation("查询所有检查项")
	public Result findAll() {
		log.info("查询所有检查项");
		List<CheckItemVO> checkItemVOList = checkItemService.findAll();
		return new Result(true, "查询成功", checkItemVOList);
	}

	@GetMapping("/findCheckItemIdsByCheckGroupId")
	@ApiOperation("根据检查项ID查询检查组ID")
	public Result findCheckItemIdsByCheckGroupId(Integer checkgroupId) {
		log.info("根据检查项ID查询检查组ID");
		List<Integer> checkItemIds = checkItemService.findCheckItemIdsByCheckGroupId(checkgroupId);
		return new Result(true, "查询成功", checkItemIds);
	}
}
